/*
 * @Author: GL
 * @Date: 2022-10-11 00:16:17
 * @LastEditors: GL
 * @LastEditTime: 2022-10-13 17:07:33
 * @Description: 文章管理
 */
// 导入数据库操作模块
const db = require("../db/index")

// 获取文章信息
const sql = 'select * from article where del_flag=0 order by id asc'
exports.article = (req,res) => {
  db.query(sql, (err, results) => {
    // 1. 执行 SQL 语句失败
    if (err) return res.cc(err)
  
    // 2. 执行 SQL 语句成功
    res.send({
      status: 0,
      message: '获取文章分类列表成功！',
      data: results,
    })
  })
}

// 新增文章信息

exports.addArticle = (req,res) => {
  // 不允许添加同一文章
  const selectSql = "select * from article where title=?"
  db.query(selectSql, [req.body.title], (err, results) => {
    // 执行 SQL 语句失败
    if (err) return res.cc(err)

    if (results.length === 1 && results[0].title === req.body.title) return res.cc('文章已存在！')
  
    // TODO：新增文章分类
    const sql = `insert into article set ?`
    db.query(sql, req.body, (err, results) => {
      // SQL 语句执行失败
      if (err) return res.cc(err)
    
      // SQL 语句执行成功，但是影响行数不等于 1
      if (results.affectedRows !== 1) return res.cc('新增文章分类失败！')
    
      // 新增文章分类成功
      res.cc('文章添加成功！', 0)
    })
  })
}
// 删除文章
exports.delArticle = (req,res) => {
  const delSql = `update article set del_flag=1 where id=?`

  db.query(delSql, req.params.id, (err, results) => {
    // 执行 SQL 语句失败
    if (err) return res.cc(err)
  
    // SQL 语句执行成功，但是影响行数不等于 1
    if (results.affectedRows !== 1) return res.cc('删除文章分类失败！')
  
    // 删除文章分类成功
    res.cc('删除文章成功！', 0)
  })
}

// 文章查询
exports.searchArticle = (req,res) => {

  const searchSql = 'select * from article where title=?'

  db.query(searchSql, req.body.title, (err, results) => {
    // 执行 SQL 语句失败
    if (err) return res.cc(err)
  
    // SQL 语句执行成功，但是没有查询到任何数据
    if (results.length !== 1) return res.cc('获取文章数据失败！')
  
    // 把数据响应给客户端
    res.send({
      status: 0,
      message: '获取文章数据成功！',
      data: results[0],
    })
  })
}

// 文章更新
exports.updateArticle = (req,res) => {
  const sql = `select * from article where title=?`

  // 执行查重操作
db.query(sql, [req.body.title], (err, results) => {
  // 执行 SQL 语句失败
  if (err) return res.cc(err)

  if (results.length === 1 && results[0].name === req.body.name) return res.cc('文章以存在')

  // TODO：更新文章分类
  const updateSql = `update article set ? where Id=?`

  db.query(updateSql, [req.body, req.body.id], (err, results) => {
    // 执行 SQL 语句失败
    if (err) return res.cc(err)
  
    // SQL 语句执行成功，但是影响行数不等于 1
    if (results.affectedRows !== 1) return res.cc('更新文章失败！')
  
    // 更新文章分类成功
    res.cc('文章更新成功！', 0)
  })
})
}
